﻿using BCCommon;
using BCDto.Common.Banner;
using System;
using System.Collections.Generic;
using System.Text;

namespace BCService.Common.Banner
{
    /// <summary>
    /// Banner分类编码服务接口
    /// </summary>
    public interface IBannerTagcodeService
    {
        /// <summary>
        /// 添加Banner分类编码信息
        /// </summary>
        /// <param name="bannerTagcodeRequestDto">Banner分类编码请求信息</param>
        /// <returns></returns>
        BannerTagcodeDto Add(BannerTagcodeRequestDto bannerTagcodeRequestDto);
        /// <summary>
        /// 修改Banner分类编码信息
        /// </summary>
        /// <param name="bannerTagcodeRequestDto">Banner分类编码请求信息</param>
        /// <returns></returns>
        BannerTagcodeDto Update(BannerTagcodeRequestDto bannerTagcodeRequestDto);
        /// <summary>
        /// 获取Banner分类编码信息
        /// </summary>
        /// <param name="bannerTagcode">Banner分类编码</param>
        /// <returns></returns>
        BannerTagcodeDto Get(string bannerTagcode);
        /// <summary>
        /// 删除Banner分类编码信息
        /// </summary>
        /// <param name="bannerTagcode">Banner分类编码</param>
        void Delete(string bannerTagcode);
        /// <summary>
        /// 获取Banner分类编码列表
        /// </summary>
        /// <returns></returns>
        IEnumerable<BannerTagcodeDto> GetList();
        /// <summary>
        /// 获取Banner分类编码列表（分页）
        /// </summary>
        /// <param name="tagCode">标记码</param>
        /// <param name="ascending">排序</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页数据条数</param>
        /// <returns></returns>
        PageableList<BannerTagcodeDto> GetPageableList(string tagCode, bool? ascending, int pageIndex = 1, int pageSize = 20);

        /// <summary>
		/// 启用Banner分类编码
		/// </summary>
		/// <param name="bannerTagcode">Banner分类编码</param>
		bool Enabled(string bannerTagcode);
        /// <summary>
        /// 禁用Banner分类编码
        /// </summary>
        /// <param name="bannerTagcode">Banner分类编码</param>
        bool Disabled(string bannerTagcode);
    }
}
